package empleadoAdministrativo;

import interesado.EliminarCuenta_GUI;
import interesado.Interesado_GUI;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.SwingConstants;

import javax.swing.WindowConstants;

import misc.Logica;
import misc.Login_GUI;








/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
@SuppressWarnings("serial")
public class Empleado_GUI extends javax.swing.JFrame {

	{
		//Set Look & Feel
		try {
			javax.swing.UIManager.setLookAndFeel(javax.swing.UIManager.getSystemLookAndFeelClassName());
		} catch(Exception e) {
			e.printStackTrace();
		}
	}

	private JMenuBar mnuInteresado;

	//Agregados
	private Login_GUI padre;
	
	private String usuario,password;
	private JMenuItem menuReporte;
	private JMenuItem mnuAcep;
	private JMenuItem menuCanPases;
	private JMenuItem mnuSolTipo;
	private JMenuItem mnuSolInt;
	private JMenuItem mnuTipoSol;
	private JMenu mnuSol;
	private JMenuItem mnuRegReq;
	private JMenuItem menuSolicitudesP;
	private JMenu menuConsultas;
	private JMenu menuRequisitos;
	private JMenuItem menuRegPases;
	private JMenu menuPases;
	private JMenuItem menuCerrar;
	private JMenu menuSalir;
	private JMenuItem menuAdminReq;
	private JMenu jMenu1;
	
	private AdminRequisito_GUI requisitos;
	private Solicitudes_Pendientes_GUI solicitudes;
	private Logica logica;
	private CancelarPase_GUI cancelarPase;
	private RegistrarPase_GUI registrarPase;
	private ReporteSolicitud_GUI reporte;
	

	/**
	* Auto-generated main method to display this JFrame
	*/
	
	public Empleado_GUI(Login_GUI padre, String usuario, String password, Logica logica) {
		super();
		initGUI();
		this.padre=padre;
		this.usuario=usuario;
		this.password=password;
		this.logica=logica;
	}
	private void initGUI() {
		try {
			setTitle("Empleado Administrativo");
			setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
			getContentPane().setLayout(null);
			getContentPane().setBackground(new java.awt.Color(255,255,255));
			{
				mnuInteresado = new JMenuBar();
				setJMenuBar(mnuInteresado);
				{
					menuPases = new JMenu();
					mnuInteresado.add(menuPases);
					menuPases.setText("Pases");
					menuPases.setBounds(124, 0, 55, 23);
					{
						menuRegPases = new JMenuItem();
						menuPases.add(menuRegPases);
						menuRegPases.setText("Registrar");
						menuRegPases.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								menuRegPasesActionPerformed(evt);
							}
						});
					}
					{
						menuCanPases = new JMenuItem();
						menuPases.add(menuCanPases);
						menuCanPases.setText("Cancelar");
						menuCanPases.setBounds(67, 21, 65, 22);
						menuCanPases.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								menuCanPasesActionPerformed(evt);
							}
						});
					}
				}
				{
					menuRequisitos = new JMenu();
					mnuInteresado.add(menuRequisitos);
					menuRequisitos.setText("Requisitos");
					{
						menuAdminReq = new JMenuItem();
						menuRequisitos.add(menuAdminReq);
						menuAdminReq.setText("Administrar");
						menuAdminReq.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								menuAdminReqActionPerformed(evt);
							}
						});
					}
					{
						mnuRegReq = new JMenuItem();
						menuRequisitos.add(mnuRegReq);
						mnuRegReq.setText("Registrar Requisito");
					}
				}
				{
					jMenu1 = new JMenu();
					mnuInteresado.add(jMenu1);
					jMenu1.setText("Reportes");
					{
						menuReporte = new JMenuItem();
						jMenu1.add(menuReporte);
						menuReporte.setText("Reporte de solicitudes");
						menuReporte.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								menuReporteActionPerformed(evt);
							}
						});
					}
				}
				{
					menuConsultas = new JMenu();
					mnuInteresado.add(menuConsultas);
					menuConsultas.setText("Consultas");
					{
						menuSolicitudesP = new JMenuItem();
						menuConsultas.add(menuSolicitudesP);
						menuSolicitudesP.setText("Solicitudes pendientes");
						menuSolicitudesP.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								menuSolicitudesPActionPerformed(evt);
							}
						});
					}
					{
						mnuSolInt = new JMenuItem();
						menuConsultas.add(mnuSolInt);
						mnuSolInt.setText("Solicitudes por interesado");
					}
					{
						mnuSolTipo = new JMenuItem();
						menuConsultas.add(mnuSolTipo);
						mnuSolTipo.setText("Solicitudes por tipo");
					}
				}
				{
					mnuSol = new JMenu();
					mnuInteresado.add(mnuSol);
					mnuSol.setText("Solicitudes");
					{
						mnuTipoSol = new JMenuItem();
						mnuSol.add(mnuTipoSol);
						mnuTipoSol.setText("Tipos de solicitud");
					}
					{
						mnuAcep = new JMenuItem();
						mnuSol.add(mnuAcep);
						mnuAcep.setText("Aceptar solicitudes");
					}
				}
				{
					menuSalir = new JMenu();
					mnuInteresado.add(menuSalir);
					menuSalir.setText("Salir");
					{
						menuCerrar = new JMenuItem();
						menuSalir.add(menuCerrar);
						menuCerrar.setText("Cerrar Sesion");
						menuCerrar.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								menuCerrarActionPerformed(evt);
							}
						});
					}
				}
			}
			pack();
			this.setSize(500, 252);
		} catch (Exception e) {
		    //add your error handling code here
			e.printStackTrace();
		}
	}
	
	
	
	
	//Metodos agregados
	
	private void salir(){
		this.setVisible(false);
		padre.limpiarCampos();
		this.dispose();
		logica.desconectar();
		padre.setVisible(true);
		
	}
	
	
	
	private void administrarResuisitos() {
		if (requisitos==null) requisitos=new AdminRequisito_GUI(this,logica);
		requisitos.setLocationRelativeTo(this);
		requisitos.setVisible(true);
		this.setVisible(false);
	}
	
	
	
	private void menuCerrarActionPerformed(ActionEvent evt) {
		
		 int respuesta = JOptionPane.showConfirmDialog(null, "¿Desea cerrar la sesión?", "Cerrar Sesion",
                 JOptionPane.YES_NO_OPTION);
			
			 //Confirmacion afirmativa, sino volvemos a la pantalla
			 if(respuesta==JOptionPane.YES_OPTION){
				 salir();
			 }
	}
	
	private void menuRegPasesActionPerformed(ActionEvent evt) {
		if (registrarPase==null) registrarPase=new RegistrarPase_GUI(this,logica);
		registrarPase.mostrarSolicitudes();
		registrarPase.setLocationRelativeTo(this);
		registrarPase.setVisible(true);
		this.setVisible(false);
	}
	
	private void menuCanPasesActionPerformed(ActionEvent evt) {
		if (cancelarPase==null) cancelarPase=new CancelarPase_GUI(logica,this);
		cancelarPase.mostrarSolicitudes();
		cancelarPase.setLocationRelativeTo(this);
		cancelarPase.setVisible(true);
		this.setVisible(false);
	}
	
	private void menuAdminReqActionPerformed(ActionEvent evt) {
		administrarResuisitos();
	}
	
	private void menuReporteActionPerformed(ActionEvent evt) {
		if (reporte == null) reporte = new ReporteSolicitud_GUI(this,logica);
		reporte.setLocationRelativeTo(this);
		reporte.limpiarTabla();
		reporte.setVisible(true);
		this.setVisible(false);
		
	}
	
	private void menuSolicitudesPActionPerformed(ActionEvent evt) {
		if (solicitudes == null) solicitudes = new Solicitudes_Pendientes_GUI(this,logica);
		solicitudes.setLocationRelativeTo(this);
		solicitudes.mostrarSolicitudes();
		solicitudes.setVisible(true);
		this.setVisible(false);
	}

}
